# @Time    :2025/3/28 21:06
"""
编写函数 calculate_sum，接受一个固定参数 base 和不定长参数 *nums，
函数返回 base 加上 nums 中所有数的和。调用该函数传入不同数量的参数，测试不定长参数的功能。
"""


# def calculate_sum(base, *nums):
#     return base + sum(nums)
#
#
# print(calculate_sum(1, 12, 14, 15))
# print(calculate_sum(1, 12))
#

# --------------------------------
"""
编写函数 print_user_info，接受一个固定参数 user_id，不定长参数 *args 和关键字不定长参数 **kwargs。
函数内部打印 user_id，然后遍历 args 打印每个元素，
再遍历 kwargs 打印每个键值对。分别传入不同类型和数量的参数调用该函数。
"""
def print_user_info(user_id, *args, **kwargs):
    print(f"用户的id是{user_id}")
    for j in args:
        print(j)
    for k,v in kwargs.items(): #是对键值对的遍历 key,vaules
        print(f"{k}:{v}")
    print("----")
    # for k,v in enumerate(kwargs):#取得是 下标和元素(v） k是索引，v是取得 字典的k
    #     print(f"{k}:{v}")


print_user_info(12, "爱好1","爱好2",城市="北京",职业="程序员")



print("-------")
# def example(**kwargs):
#     for k, v in kwargs.items():
#         print(f"{k}: {v}")
#         print(kwargs.items()) #dict_items([('name', 'Alice'), ('age', 25), ('city', 'New York')])
#         print(kwargs)
# example(name="Alice", age=25, city="New York")

"""
kwargs 是一个字典，kwargs={'name': 'Alice', 'age': 25, 'city': 'New York'}
kwargs.items() #dict_items([('name', 'Alice'), ('age', 25), ('city', 'New York')])
"""
"""
    for k,v in kwargs.items():
        print(f"{k}:{v}")
    for k,v in enumerate(kwargs):
        print(f"{k}:{v}")
        
        for k, v in enumerate(kwargs):
(1) 作用
enumerate() 是一个内置函数，用于遍历可迭代对象时同时获取索引和元素。
当 enumerate() 作用于字典时，默认会遍历字典的键（而不是键值对）。即：
 
 enumerate(kwargs)  遍历字典的时候，k是索引，v 是字典的键
  kwargs.items()    是对字典的 (key,value)遍历
"""